package com.esunny.resourcevisualization.manage;

import com.esunny.resourcevisualization.dao.ResourceTypeEntityDataDao;
import com.esunny.resourcevisualization.domain.entity.ResourceTypeEntityData;
import com.esunny.resourcevisualization.domain.response.ReturnStructure;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;

/**
 * @version 1.0.0.0
 * @ClassName ResourceTypeEntityDataManage
 * @Description 资源类别实体字段值数据处理
 * @Author baochencong
 * @Date 2020/9/28 15:51
 */
@Component
public class ResourceTypeEntityDataManage {

    @Resource
    private ResourceTypeEntityDataDao resourceTypeEntityDataDao;

    /**
     * 添加资源类别实体字段值
     *
     * @param resourceTypeEntityData 资源类别实体字段值
     * @return 添加结果信息
     */
    public ReturnStructure addResourceTypeEntityData(ResourceTypeEntityData resourceTypeEntityData) {
        return resourceTypeEntityDataDao.addResourceTypeEntityData(resourceTypeEntityData) ? ReturnStructure.SUCCESS("资源类别实体字段值添加成功", null) : ReturnStructure.ERROR("资源类别实体字段值添加失败", null);
    }

    /**
     * 通过资源类别实体字段值id修改资源类别实体字段值
     *
     * @param entityDataId    资源类别实体字段值id
     * @param entityDataValue 资源类别实体字段值
     * @return 修改结果信息
     */
    public ReturnStructure updateResourceTypeEntityDataByEntityDataId(int entityDataId, String entityDataValue) {
        return resourceTypeEntityDataDao.updateResourceTypeEntityDataByEntityDataId(entityDataId, entityDataValue) ? ReturnStructure.SUCCESS("修改资源类别实体字段值成功", null) : ReturnStructure.ERROR("修改资源类别实体字段值失败", null);
    }

    /**
     * 通过资源类别实体id和资源类别实体字段英文名修改资源类别实体字段值
     *
     * @param resourceTypeEntityData 资源类别实体字段值
     * @return 修改结果信息
     */
    public ReturnStructure updateResourceTypeEntityDataByEntityIdAndFieldName(ResourceTypeEntityData resourceTypeEntityData) {
        return resourceTypeEntityDataDao.updateResourceTypeEntityDataByEntityIdAndFieldName(resourceTypeEntityData) ? ReturnStructure.SUCCESS("修改资源类别实体字段值成功", null) : ReturnStructure.ERROR("修改资源类别实体字段值失败", null);
    }

    /**
     * 通过资源类别实体id和资源类别实体字段英文名获取资源类别字段值
     *
     * @param entityId  资源类别实体id
     * @param fieldName 资源类别实体字段英文名
     * @return 资源类别字段值
     */
    public ResourceTypeEntityData getResourceTypeEntityDataByEntityIdAndFieldName(int entityId, String fieldName) {
        return resourceTypeEntityDataDao.getResourceTypeEntityDataByEntityIdAndFieldName(entityId, fieldName);
    }

    /**
     * 通过资源类别实体字段值id获取资源类别实体字段值
     *
     * @param entityDataId 资源类别实体字段值id
     * @return 资源类别实体字段值
     */
    public ResourceTypeEntityData getResourceTypeEntityDataByEntityDataId(int entityDataId) {
        return resourceTypeEntityDataDao.getResourceTypeEntityDataByEntityDataId(entityDataId);
    }

    /**
     * 通过资源类别实体字段值id获取资源类别实体字段值
     *
     * @param entityId 资源类别实体字段值id
     * @return 资源类别实体字段值
     */
    public List<ResourceTypeEntityData> getResourceTypeEntityDataByEntityId(int entityId) {
        return resourceTypeEntityDataDao.getResourceTypeEntityDataByEntityId(entityId);
    }

    /**
     * 通过资源类别英文名和字段英文名获取资源类别实体字段值列表
     *
     * @param name      资源类别英文名
     * @param fieldName 字段英文名
     * @return 资源类别实体字段值列表
     */
    public List<ResourceTypeEntityData> getResourceTypeEntityDataByNameAndFieldNameAndValue(String name, String fieldName, String value) {
        return resourceTypeEntityDataDao.getResourceTypeEntityDataByNameAndFieldNameAndValue(name, fieldName, value);
    }

}
